shell 练习-统计日志大小

假如我们需要每小时都去执行你写的脚本。在脚本中实现这样的功能,当时间是0点和12点时,需要将目录/data/log/下的文件全部清空,注意只能清空文件内容而不能删除文件。而其他时间只需要统计一下每个文件的大小,一个文件一行,输出到一个按日期和时间为名字的日志里。 需要考虑/data/log/目录下的二级、三级、… 等子目录里面的文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
logdir="/data/log"
t=`date +%H`
d=`date +%F-%H`
[ -d /tmp/log_size || mkdir /tmp/log_size ]
for log in `find $logdir -type f`
do
if [ $t == "0" ] || [ $t == "10" ]
then
true > $log
else
du -sh $log >>/tmp/log_size/$d
fi
done